Digital video capabilities can be incorporated into a wide range of devices, including digital televisions, digital direct broadcast systems, wireless communication devices, personal digital assistants (PDAs), laptop computers, desktop computers, video game consoles, digital cameras, digital recording devices, cellular or satellite radio telephones, and the like. Digital video devices can provide significant improvements over conventional analog video systems in processing and transmitting video sequences.
Different video encoding standards have been established for encoding digital video sequences. The Moving Picture Experts Group (MPEG), for example, has developed a number of standards including MPEG-1, MPEG-2 and MPEG-4. Other examples include the International Telecommunication Union (ITU)-T H.263 standard, and the ITU-T H.264 standard and its counterpart, ISO/IEC MPEG-4, Part 10, i.e., Advanced Video Coding (AVC). These video encoding standards support improved transmission efficiency of video sequences by encoding data in a compressed manner.
Various video encoding standards support video encoding techniques that utilize similarities between successive video frames, referred to as temporal or Inter-frame correlation, to provide Inter-frame compression. The Inter-frame compression techniques exploit data redundancy across frames by converting pixel-based representations of video frames to motion representations. Frames encoded using Inter-frame techniques are referred to as P (“predictive”) frames or B (“bi-directional”) frames. Some frames, referred to as I (“intra”) frames, are encoded using intra-frame techniques, which are non-predictive.
In order to meet low bandwidth requirements, some video applications, such as video telephony or video streaming, reduce the bit rate by encoding video at a lower frame rate using frame skipping. Unfortunately, the reduced frame rate video can produce artifacts in the form of motion jerkiness. Therefore, frame interpolation, also known as frame rate up conversion (FRUC), can be used at the decoder to interpolate the content of skipped frames, and thereby provide the effect of increased frame rate at the decoder side.